﻿using RemoteSensingImageDirectServer.Models.Request.Listener;
using RemoteSensingImageDirectServer.Models.Request.Response;
using RemoteSensingImageDirectServer.Untils;
using RemoteSensingImageDirectServer.Untils.Source;
using System.Xml;

namespace RemoteSensingImageDirectServer.Service.OGC.Metadata
{
    public interface IRasterMapMetadata
    {
        /// <summary>
        /// 获取GetCapabilities服务元数据信息
        /// </summary>
        /// <param name="source">数据源</param>
        /// <param name="listener">Capabilities请求参数</param>
        /// <param name="capabilitiesUri">GetCapabilities地址</param>
        /// <param name="tileUri">GetTile地址</param>
        /// <param name="aliasName">图层别名</param>
        /// <returns>返回元数据xml文档</returns>
        ServiceResult GetCapabilities(IRSIMapSource source, ICapabilitiesListener listener,
            string? capabilitiesUri, string? tileUri, string? aliasName = null);

        /// <summary>
        /// 获取超图标准的GetCapabilities服务元数据信息
        /// </summary>
        /// <param name="source">数据源</param>
        /// <param name="listener">Capabilities请求参数</param>
        /// <param name="capabilitiesUri">GetCapabilities地址</param>
        /// <param name="tileUri">GetTile地址</param>
        /// <param name="aliasName">图层别名</param>
        /// <returns>返回元数据xml文档</returns>
        ServiceResult GetCapabilitiesForSuperMap(IRSIMapSource source, ICapabilitiesListener listener,
            string capabilitiesUri, string tileUri, string? aliasName = null);
    }
}
